package 并查集;

import java.util.Scanner;

public class 修改数组 {
    static int[] fa;
    static int find(int x) {
        if (x == fa[x]) {
            return x;
        }
        return fa[x] = find(fa[x]); //路径压缩
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        fa = new int[n + 100]; //定义数组 数组长度为n+100 防止越界
        // 初始化数组 从下标1开始 0处为0
        for (int i = 1; i < fa.length; i++) {
            fa[i] = i;
        }
        for (int i = 0; i < n; i++) { //遍历n次
            int t;
            t = scanner.nextInt();
            t = find(t);  //查找下标对应的数组中的值
            System.out.print(t + " ");
            fa[find(t)] = fa[find(t)] + 1; //修改数组 比如第一次来的是3，输出完下标为3的数后，将小标为3的值+1  下一次再来下标为3的数就会输出4
        }
    }
}

